草庐IT

Java Event-Dispatching Thread 解释

全部标签

java - ANTLR:如何解释这种识别 Java 代码后缀的语法的行为?

一周前,我开始了以下项目:识别Java代码后缀的语法。我用的是官方ANTLRJava(Java.g4)的语法作为基线并开始添加一些规则。然而,这些新规则也引入了左递归,我也必须处理它。经过几天的工作,我得到了followingcode.当我开始测试时,我注意到了一些我仍然无法解释的异常情况。当给出输入{}解析器告诉我noviablealternativeatinput''但是当我切换规则右侧的终端顺序时s2,特别是如果我们将右手边从v2_1|v2_2|v2_3...更改为至v2_36|v2_1|v2_2...(终端v2_36移到第一个位置),序列{}被接受。我的第一个想法是Antlr不

python - 有人可以向我解释这个装饰器代码吗?

代码取自MarkLutz的LearningPython4thEditionclasstracer:def__init__(self,func):self.calls=0self.func=funcdef__call__(self,*args):self.calls+=1print('call%sto%s'%(self.calls,self.func.__name__))self.func(*args)@tracerdefspam(a,b,c):print(a+b+c)spam(1,2,3)此外,当我运行这段代码时,它也不会打印1、2、3的总和,但在书中,它显示了!整个代码让我摸不着头脑

c++ - 为科学代码选择前端/解释器

我在过去几年开发的仿真工具是用C++编写的,目前有一个tcl解释前端。它的编写使得它可以在交互式shell中运行,也可以通过传递输入文件来运行。无论哪种方式,输入文件都是用tcl编写的(我添加了许多额外的特定于模拟的命令)。这允许非常强大的输入文件(例如,当运行蒙特卡洛模拟时,随机分布可以直接在输入文件中编程为tcl程序)。不幸的是,我发现与更现代的解释语言所提供的相比,tcl解释器变得有些受限,而且它的语法似乎有点神秘。由于计算引擎是作为具有c兼容API的库编写的,因此编写替代前端应该很简单,我正在考虑转向新的解释器,但是我有一些时间选择(主要是因为我对许多解释语言没有丰富的经验)。

python - 如何在 emacs python 模式中取消解释器命令

如果我在python解释器中输入错误的命令,有时我只会看到...。例如,如果我键入help(random.unif并按回车键,我将无法输入新命令。我必须退出emacs并再次启动python和解释器。有没有办法纠正这个问题? 最佳答案 正如PavelAnossov所解释的,您想向Python发送一个CTRL-C来中断它。但是在emacs中,默认情况下,CTRL-C是一个前缀键。幸运的是,在大多数交互式shell模式中,包括python模式和替代模式,连续两次按CTRL-C会向解释器发送ctrl-C。或者,更技术地说,CTRL-CCTR

python - 有人可以解释为什么这会修复我的递归错误吗?

我在Python中递归地实现了二分搜索(我知道这很糟糕)并且使用以下代码得到了最大递归错误:defbs_h(items,key,lower,upper):iflower==upper:returnNonemid=(lower+upper)//2ifkey然后我像这样更改了我的参数和基本情况:defbs_h(items,key,lower,upper):iflower+1==upper:returnNonemid=(lower+upper)//2ifkey这修复了错误,但我不确定为什么。有人可以解释一下吗? 最佳答案 无论何时使用递归

python - 为什么不能在没有额外的 `import` 语句的情况下引用似乎由解释器自动加载的模块?

当您启动Python解释器时,似乎在启动过程中会自动导入一些模块/包:pythonPython2.7.6(default,Jan132014,14:59:37)...>>>importsys>>>forkeyinsys.modules.iterkeys():...print(key)...ossysabcothers...但是,这些模块似乎已加载到不同的范围/命名空间中,因为如果没有额外的import就无法访问它们:>>>abcTraceback(mostrecentcalllast):File"",line1,inNameError:name'abc'isnotdefined这是我的

python - 如何解释 PyPi 包名称中的命名约定

这是可以在很多包中找到的东西,例如这个包:https://pypi.python.org/pypi/pippip-9.0.1-py2.py3-none-any.whl如何解释这个命名约定? 最佳答案 命名格式可以在PEP427中的filenameconvention下找到:{distribution}-{version}(-{buildtag})?-{pythontag}-{abitag}-{platformtag}.whl在这种情况下:pip-9.0.1-py2.py3-none-any.whl是pip包的版本9.0.1构建,与P

python - 解释(并使用)Fabric 本地命令的输出

我想使用Fabric命令来设置本地开发环境,作为其中的一部分,我希望能够设置一个git远程。这很好用:fromfabric.apiimportlocaldefset_remote():"""Setupgitremoteforpushingtodev."""local('gitremoteaddmyremotegit@myremote.com:myrepo.git')第二次运行时会出现问题-当本地命令因为远程已经存在而崩溃时。我想通过首先检查Remote是否存在来防止这种情况发生:在伪代码中,我想执行以下操作:if'myremote'inlocal('gitremote'):print'

python - 安全的 Python 解释器?

是否有安全的Python解释器?想象一下您可以在您的机器上运行的Python虚拟机,它可以限制操作。没有文件可以打开,没有系统调用等。它只是将stdin转换为stdout,可能使用文本处理+数学等。是否存在这样的安全PythonVM? 最佳答案 我知道没有这样的公开分发的“安全解释器”(显然Google有一个它在AppEngine中使用的解释器,尽管与您想要的限制有些不同,例如,某些文件可以以只读方式打开)。但是,有一些说法,例如here,虽然我无法验证它们。Pypy的PythoninaSandbox考虑到pypy开发团队的高质量和

python - 在 intellij 上打开 python 解释器

我是python3.3的新手。我使用的是intellijIDEA12.1.6。如何打开带有“>>>”提示符的解释器窗口?谢谢 最佳答案 我正在使用IntelliJIDEA13.1.4Ultimate和JetBrainsPythonPlugin3.4.135.24.安装插件并重启IDE后,我可以打开iPython控制台exactlythesamewayasinPyCharm,即点击菜单中的Tools->RunPythonConsole。另一种选择是在.py文件中选择一些代码,右键单击并选择ExecuteLine/Selectionin